1. Field of the Invention
The present invention relates generally to methods and apparatus for use in disk drives for computer systems. More particularly, the present invention relates to methods and apparatus for adaptively updating seek time prediction data.
2. Description of the Related Art
The reduction of the time required to access data in disk drives is crucial to ensure that performance issues associated with a disk drive may be minimized. When performance of a disk drive is not at an acceptable level, customer dissatisfaction regarding the disk drive may be significant, and the time required to access data stored on the disk drive may be compromised. By way of example, when a disk drive experiences a time delay during access of data stored on the disk drive, a customer may perceive the disk drive to be operating in a faulty manner. Therefore, the magnitude of time delays experienced on a disk drive during access of data stored on the disk drive must generally be reduced to acceptable levels.
FIG. 1 is a diagrammatic representation of a disk drive assembly suitable for use in a computer system. A disk drive assembly 102, which may also be known as a head-disk assembly (HDA), includes a platter assembly 104 that is situated on a base plate 103. Platter assembly, as shown, includes a platter 105 and a spindle mechanism 106. Spindle mechanism 106 typically includes a spindle bearing 107 which is coupled to platter 105, or a disk. Data is stored, or otherwise encoded, on the disk 105. The data may be stored on the disk 105 in multiple tracks 108, each of which includes encoded position information. That is, each track 108 contains track numbers and patterns to determine fractional positions which relate to the location of a disk drive, or read/write, head 120 with respect to the disk 105.
Disk drive assembly 102 also includes an actuator assembly 114. Actuator assembly 114 includes an actuator 118 which supports disk drive head 120. Actuator assembly 114 is arranged to move disk drive head 120 to different positions over the disk 105 such that data may be retrieved from or stored to different data-carrying sectors of the disk 105. In general, when disk drive head 120 is to be moved, torque is generated to pivot or otherwise move actuator assembly 114 by a motor assembly 122. Motor assembly 122 is generally mechanically coupled to actuator assembly 114 through an actuator bearing 124.
Actuator motor assembly 122 often includes a coil structure and a magnetic field which surrounds the coil structure, as will be appreciated by those skilled in the art. In other words, actuator motor assembly 122 typically includes a voice coil motor (VCM). By passing current through the coil structure in a particular direction and for a specified length of time, actuator assembly 114 may be moved, e.g., pivoted, such that disk drive head 120 is positioned over a specific portion of the disk 105. The pivoting of actuator assembly 114 to position the disk drive head 120 in a desired position is generally known as a xe2x80x9cseek.xe2x80x9d The time to perform each seek is typically known as xe2x80x9cseek time.xe2x80x9d A spindle bearing 107, which is coupled to a spindle motor (not shown), allows the disk 105 to rotate with respect to base plate 103. The time required to rotate the disk 105 to perform a particular data access may be termed xe2x80x9crotation time.xe2x80x9d The rotation time is equal to the time required to rotate from a current position to a desired position on the disk 105. Thus, the rotation time may be as great as the time required for one revolution of the disk 105. Generally, the total time to access a particular block of data stored on the disk is approximately equal to the sum of the seek time, the rotation time, and the time required to read or write the data.
When multiple seek commands are received, the order in which the commands are processed may be determined by the total time required to access each of the corresponding data blocks. As shown, the disk may rotate in a direction indicated by arrow 126. In addition, a first data block 128, a second data block 130, and a third data block 132 are illustrated. As shown in FIG. 1, the first data block 128 has rotated past the disk drive head 120. Thus, if the first data block 128 is accessed first, a delay approximately equal to the rotation time is imposed. As a result, it is typically preferable to read the data block that is closest to the disk drive head 120 and which has not rotated past the disk drive head 120. By way of example, it may be preferable to access the second data block 130 since it is closest to the disk drive head 120 in the rotation path of the disk 105. Thus, the total time required to access each data block stored on the disk 105 is dependent upon the location of the data being accessed.
As described above, the order in which the seek commands are selected and executed is preferably determined, at least in part, by the total time required to access each data block. The rotation time is dependent upon the revolutions per minute (RPM) of the disk 105 and may therefore be easily calculated. However, the seek time is dependent upon the distance between the data being accessed and the disk drive head 120. Therefore, it would be beneficial if these seek times could be accurately predicted.
Expected seek times associated with various seek commands may be tracked through the use of a seek time table. As shown in FIG. 2, an exemplary, conventional seek time table is shown. The seek time table includes a plurality of entries 202. Each one of the plurality of entries 202 includes a distance 204 and a seek time 206 that may be required to access data located at the distance from the disk drive head. Typically such a table is static and maintained for multiple disk drives rather than one disk drive. However, disk drives often have varying operating characteristics (e.g., seek times). Moreover, each individual disk drive may operate in a different manner depending upon the operating environment (e.g., temperature, voltage) of the disk drive. As a result, the seek time table may be inaccurate under a variety of circumstances. Accordingly, the total time required to access each data block may be greater than desired.
Inaccuracies associated with the seek time table may have a negative effect on the total time required to access one or more data blocks. By way of example, the seek time table may be presented in the form of a xe2x80x9cseek time curvexe2x80x9d such as that illustrated in FIG. 3. Seek times 302 are plotted along the y-axis while distances 304 associated with the seek times are plotted along the x-axis. As shown in FIG. 3, the slope of xe2x80x9cseek time curvexe2x80x9d 306 is highest when the disk drive head must traverse short distances. Since misprediction of seek times may result in rotation of a selected data block past the disk drive head 120, this may result in an unnecessary delay equal to the rotation time as the data block again rotates toward the disk drive head 120. As a result, the cost of error is high, particularly for these short distances. Accordingly, it would be beneficial if seek times could be accurately predicted for various distances, disk drives, and operating environments.
The invention relates to methods and apparatus for adaptively updating a set of seek time data for use in a disk drive apparatus. In accordance with one embodiment of the invention, the disk drive apparatus includes a disk drive head and the set of seek time data includes a plurality of data points. Each of the plurality of data points is defined-by a distance and an expected seek time during which the disk drive head may be traversed across the distance.
According to one aspect of the invention, methods and apparatus for processing a seek request on a disk drive apparatus having a disk drive head are provided. The seek request is processed during which the disk drive head is traversed across an actual distance. At least one expected seek time associated with the actual distance is obtained from a set of seek time data. One or more measurements are performed on the disk drive apparatus to obtain an update value. At least one expected seek time are then updated such that at least part of the update value is included in the at least one expected seek time. The expected seek time may be in the form of shape parameters associated with a formula equivalent to the expected seek time.
According to another aspect of the invention, methods and apparatus for processing a seek request on a disk drive apparatus having a disk drive head are provided. During the seek request, the disk drive head is traversed across an actual distance and is performed in an actual seek time. An expected seek time associated with the actual distance is then obtained. A difference between the expected seek time and the actual seek time is ascertained. At least one of a plurality of seek times stored in a set of seek time data is then updated such that at least part of the difference between the expected seek time and the actual seek time is included in the at least one of the plurality of seek times.
According to another aspect of the invention, the difference between the expected seek time and the actual seek time is distributed between a lower boundary point and an upper boundary point within the set of seek time data. The difference may be distributed evenly between the lower boundary point and the upper boundary point. Alternatively, the difference may be distributed according to a specified method.
According to one embodiment, the lower boundary point seek time may be modified by a first update time to create the modified lower boundary point seek time. By way of example, the first update time may be a first fraction of the difference between the expected seek time and the actual seek time. According to one embodiment, the first fraction is proportional to a difference between the upper boundary point distance and the actual distance.
Similarly, the upper boundary point seek time may be modified by a second update time to create the modified upper boundary point seek time. By way of example, the second update time may be a second fraction of the difference between the expected seek time and the actual seek time. According to one embodiment, the second fraction is proportional to a difference between the actual distance and the lower boundary point distance.
According to yet another aspect of the invention, a filter is applied to the modified lower boundary point seek time and the modified upper boundary point seek time. By way of example, when the expected seek time is less than or equal to the actual seek time, it may be preferable to provide minimal filtering. As yet another example, when the expected seek time is greater than the actual seek time, it may be preferable to provide more filtering. In this manner, expected seek times are maximized to minimize the cost of misprediction.
According to another aspect of the invention, a set of seek time data associated with expected seek times for a disk drive apparatus is updated. A plurality of regions are created, each of the regions corresponding to a range of possible seek distances. The set of seek time data includes a set of shape parameters for each of the regions. Each set of shape parameters is associated with an equation that produces an expected seek time. A seek request is performed during which the disk drive head is traversed across an actual distance. One or more measurements are then performed on the disk drive apparatus to obtain an update value. The one of the plurality of regions associated with the actual seek distance is determined. The set of shape parameters for the appropriate region is then updated such that at least part of the update value is applied to the set of shape parameters.
These and other advantages of the present invention will become apparent upon reading the following detailed descriptions and studying the various figures of the drawings.